#ifndef STUDENT_H_
#define STUDENT_H_
#include <iostream>
#include <string>

class Time
{
    public:
    Time(int hour, int minute, int second);
    ~Time();

    public:
    void SetHour(int hour);
    void SetMinute(int minute);
    void SetSecond(int second);

    int GetHour() const;
    int GetMinute() const;
    int GetSecond() const;

    void ShowTime() const;

    private:
    int hour_;
    int minute_;
    int second_;
};

class Date : public Time
{
    public:
    Date(int year, int month, int day, int hour, int minute, int second);
    ~Date();

    public:
    void SetYear(int year);
    void SetMonth(int month);
    void SetDay(int day);

    int GetYear() const;
    int GetMonth() const;
    int GetDay() const;

    void Show() const;

    private:
    int year_;
    int month_;
    int day_;
};

class Student
{
    public:
    Student(std::string name, int age);
    ~Student();

    public:
    void SetName(std::string name);
    void SetAge(int age);
    void SetDate(Date time);

    std::string ShowName() const;
    int ShowAge() const;
    Date ShowTime() const;

    void Show() const;

    private:
    int age_;
    Date time_;
    std::string name_;
};

#endif